package com.cqjtu.store.product.service;

import com.cqjtu.store.common.PageDTO;
import com.cqjtu.store.common.PageVO;
import com.cqjtu.store.product.pojo.dto.ProductCategoryPageDTO;
import com.cqjtu.store.product.pojo.dto.ProductSettlementDTO;
import com.cqjtu.store.product.pojo.entity.Product;
import com.cqjtu.store.product.pojo.vo.*;
import com.cqjtu.store.user.pojo.vo.UserLoginVO;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface ProductService {
    List<ProductCategoryVO> getProductCategoryList(Integer parent);

    List<ShoppingCartVO> getShoppingCartList(UserLoginVO userLoginVO);

    List<ProductVO> getNewList();

    List<ProductVO> getHotList();

    PageVO<List<ProductListVO>> getListByCategoryId(ProductCategoryPageDTO categoryPageDTO, UserLoginVO userLoginVO);


    PageInfo<Product> getListByCategoryId(ProductCategoryPageDTO categoryPageDTO);
    PageVO<List<ProductVO>> getListByCategoryId3(ProductCategoryPageDTO categoryPageDTO);

    ProductDetailsVO getProductDetailsById(Integer id,UserLoginVO userLoginVO);


    PageVO<List<ProductVO>> getFavoriteListByUser(PageDTO pageDTO, UserLoginVO userLoginVO);

    List<ShoppingCartVO> getSettlement(ProductSettlementDTO[] productSettlementDTO, UserLoginVO userLoginVO);

    //新增商品
    void addProduct(Product product, UserLoginVO userLoginVO);

    void update(Product product, UserLoginVO userLoginVO);

    PageVO<List<ProductBackListVO>> getProductList(PageDTO pageDTO);

    void deleteProduct(Integer id);

    void grounding(Integer id);

    void offShelf(Integer id);
}
